package com.punch.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.punch.common.dto.user.guardian.AppSaveStudentDTO;
import com.punch.common.dto.user.guardian.GuardianStudentDTO;
import com.punch.common.vo.user.guardian.GuardianStudentVO;
import com.punch.common.vo.user.guardian.SimpleStudentVO;
import com.punch.common.vo.user.student.StudentVO;
import com.punch.user.model.SysGuardianStudent;

import java.util.List;

/**
 * 家长下的学生信息 service
 *
 * @author xiaol
 * @since 2020/7/29 22:53
 */
public interface GuardianStudentService extends IService<SysGuardianStudent> {

    /**
     * 保存家长选的学生信息
     *
     * @param guardianStudentDTO 家长学生表单
     * @return 新增返回的记录ID
     */
    Long saveGuardianStudent(GuardianStudentDTO guardianStudentDTO);

    /**
     * 家长已添加学生列表
     *
     * @return GuardianStudentVO 学生列表
     */
    List<GuardianStudentVO> listGuardianStudent();

//    /**
//     * 编辑家长选的学生信息
//     *
//     * @param guardianStudentDTO 编辑信息（只修改了是否默认字段）
//     * @return Result 编辑信息返回
//     */
//    void editGuardianStudent(GuardianStudentDTO guardianStudentDTO);

    /**
     * 删除家长选的学生信息
     *
     * @param studentId 学生id
     */
    void deleteGuardianStudent(Long studentId);


    /**
     * 保存家长选的学生信息
     *
     * @param appSaveStudentDTO 保存信息
     */
    void saveStudent(AppSaveStudentDTO appSaveStudentDTO);

    /**
     * App端家长修改学生信息
     *
     * @param guardianStudentDTO 编辑信息
     */
    void updateGuardianStudent(GuardianStudentDTO guardianStudentDTO);

    /**
     * 根据id查询学生信息
     *
     * @param userId    用户uid
     * @param studentId 学生id
     * @return StudentVO
     */
    StudentVO getFeignStudentById(Long userId, Long studentId);

    /**
     * 简单学生列表
     *
     * @return List<SimpleStudentVO>
     */
    List<SimpleStudentVO> listSimpleStudent();
}

